package Terminal.View.Gestori;

import Terminal.Controller.CVisualizzareFattureControl;
import Terminal.Entity.Dominio.EProgetto;
import Terminal.View.JBarraNavigazione;
import Terminal.View.TimeLoggingFrame;
import Terminal.View.Fattura.JDescrizioneFattura;
import Terminal.View.Fattura.JFirmaFattura;
import Terminal.View.Fattura.JIntestazioneFattura;
import Terminal.View.Fattura.JPannelloFattura;
import Terminal.View.Fattura.JScontrinoFattura;

public class GestoreFattura extends GestoreInterfaccia {

	private static GestoreFattura _istanza;
	private CVisualizzareFattureControl controller = new CVisualizzareFattureControl();
	private JScontrinoFattura scontrino;
	private JDescrizioneFattura descrizione;
	private JPannelloFattura pannelloFattura;
	private JIntestazioneFattura intestazione;
	private JFirmaFattura firma;
	private JBarraNavigazione navigazione;
	
	private GestoreFattura()
	{}
	
	public static GestoreFattura istanza()
	{
		if (_istanza == null)
			_istanza = new GestoreFattura();
		return _istanza;
	}	
	
	public void smistaScenario(String scenario)
	{
		switch (scenario) 
		{
			case "Visualizza": 
				this.visualizza();
				break;
		}
	}
	
	private void visualizza() {

		EProgetto progetto = new EProgetto();
		
		int indiceprj = GestoreProgetto.istanza().getProgettoSelezionato();
		progetto = controller.selectProgettoByIndex(indiceprj);
		
		System.out.println("progetto"+progetto.getId());
		
		controller.selectFattura(progetto);
		controller.calcolafattura();
		
		this.pannelloFattura = new JPannelloFattura();
		this.navigazione = new JBarraNavigazione();
		navigazione.setIndietroEnabled(true);
		navigazione.setNavigazione("<html><b>Progetto:</b> "+ progetto.getNome() + "</html>");
		
		this.descrizione = new JDescrizioneFattura();
		descrizione.visualizzaElemento( controller.getFattura() );
		
		this.scontrino = new JScontrinoFattura();
		scontrino.setLineeStrategia( controller.getFattura() );
		scontrino.setLineeFattura( controller.getFattura() );
		
		this.intestazione = new JIntestazioneFattura();
		this.firma = new JFirmaFattura();
		
		pannelloFattura.aggiungiPannello(intestazione);
		pannelloFattura.aggiungiPannello(descrizione);
		pannelloFattura.aggiungiPannello(scontrino);
		pannelloFattura.aggiungiPannello(firma);
		
		TimeLoggingFrame.istanza().getPannello().pulisci();		
		TimeLoggingFrame.istanza().getPannello().add(navigazione);		
		TimeLoggingFrame.istanza().getPannello().add(pannelloFattura);
	}	
	
}
